/*
 * Copyright (c) 2024 Huawei Device Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (theLicense");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *      http://www.apache.org/licenses/LICENSE-20
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
import type { TurboModule } from 'react-native';
import { TurboModuleRegistry } from 'react-native'

export type Callback = (err: string, url: string) => void;
export interface FileInfo {
    url?: string,
    fileName?: string,
    fileType?: string,
    cache?: boolean,
    base64?: string
}

export interface Spec extends TurboModule {
    openDoc(fileParams: FileInfo[], callback: Callback): void,
    openDocBinaryinUrl(fileParams: FileInfo[], callback: Callback): void,
    openDocb64(fileParams: FileInfo[], callback: Callback): void
}

export default TurboModuleRegistry.getEnforcing<Spec>('RNCDocViewer')